The rapid increase in the number of network-enabled devices and sensors deployed in physical environments is changing communication networks. It is predicted that within the next decade billions of devices will generate a myriad of real world data for many applications and services by service providers in a variety of areas such as smart grids, smart homes, e-health, automotive, transport, logistics, and environmental monitoring. The related technologies and solutions that enable integration of real world data and services into the current information networking technologies are often described under the umbrella terms of the Internet of things (IoT) or machine-to-machine (M2M) communications. Because of the large amount of data created by devices there is a need for an efficient way to identify and query this data.
An example is a patient monitoring application that may be provided by a patient's hospital or rehabilitation center using compact biomedical wireless sensor motes that use an actuator as an aggregation point. The actuator transmits data to the network. These small wearable resource constrained devices are examples of M2M devices that may be deployed on a patient to continuously monitor vital signs such as blood pressure and flow, core temperature, oxygen saturation, motion, heart rate, hearing, and vision, among other things. Various kinds of M2M data collected by the M2M devices may be used by the patient's doctor, personal trainer (e.g., for 24 hour fitness), or an ambulance service, among others. In order to enable the doctor, personal trainer, and the ambulance service to use the data generated from M2M devices, the semantics of those resources should be available too. The semantics provide a descriptive definition of the data such that the format and structure of the data can be understood (i.e., the semantics provide meaning for the data).
M2M semantic support is intended to enable semantics to the resources for universal understanding/interpretation of them, as well as any advanced processing on them, e.g., semantic query, data analytics, etc. Introduced in the background section below are the existing technologies that are developed in Semantics Web as well as an exemplary M2M architecture (e.g., oneM2M architecture).
The oneM2M standard (oneM2M-TS-0001 oneM2M Functional Architecture-V-1.1.0) under development defines a service layer called common service entity (CSE), as illustrated in FIG. 3. The Mca reference point interfaces with an application entity (AE). The Mcc reference point interfaces with another CSE within the same service provider domain and the Mcc′ reference point interfaces with another CSE in a different service provider domain. The Mcn reference point interfaces with the underlying network service entity (NSE). An NSE provides underlying network services to the CSEs, such as device management, location services and device triggering. CSE contains multiple logical functions called “Common Service Functions (CSFs)”, such as “Discovery” or “Data Management & Repository.” FIG. 4 illustrates example CSFs for oneM2M.
oneM2M architecture enables the application service node (ASN), application dedicated node (ADN), the middle node (MN), and the infrastructure node (IN). The ASN is a node that contains one CSE and contains at least one AE. An example of physical mapping is an ASN residing in an M2M Device. The ADN is a node that contains at least one AE and does not contain a CSE. An example of physical mapping is an ADN residing in a constrained M2M Device. An MN is a node that contains one CSE and contains zero or more AEs. An example of physical mapping for an MN is an MN residing in an M2M Gateway. The IN is a node that contains one CSE and contains zero or more AEs. An example of physical mapping for an IN is the IN residing in an M2M Service Infrastructure.
The M2M Service Architecture described in (Service Component Architecture, TS-0007 Service Component Architecture-V-1.1.0) augments the oneM2M Functional Architecture by specifying M2M Services provided to M2M Application and M2M Service Providers. The components, shown in FIG. 5, are a service exposure component, network service utilization component, and a remote service exposure component. The service exposure component exposes services to AEs. The network service utilization component consumes services from the NSE. And the remote service exposure component connects Services from different M2M environments.
The Semantics Web is discussed below. The Semantics Web uses a combination of a schema language and an ontology language to provide the capabilities of ontologies. An ontology uses a predefined, reserved vocabulary to define classes and the relationships between them for a specific area of interest, or more. Resource Description Framework Schema (RDFS) as defined by the World Wide Web Consortium (W3C) (e.g., RDF Vocabulary Description Language 1.0: RDF Schema) provides a specific vocabulary for Resource Description Framework (RDF) that may be used to define classes and properties. The Web Ontology Language (OWL) extends the RDFS vocabulary with additional resources that may be used to build more expressive ontologies for the web. A property establishes relationships between resources. It may be considered the same as relationship as discussed herein. A property can be identified by URI/URL. It is one of the fundamentals that compose an ontology.
RDF is a framework for representing information in the Web. RDF is essentially a data-model. Its basic building block is a resource-property-value triple, called a statement. RDF has been given syntax in XML, JSON, etc.
FIG. 1 illustrates a semantics example, which may use RDF. RDF graph as a tool for representing information. The graph is abstract—good for human analysis, but less so for application exchange. RDF statements may also be represented in a concrete format, such as a file or other byte stream. The most popular used expressive formats are RDF/XML (RDF language 802) and the Terse RDF Triple Language (Turtle) 804. RDF has three components: a subject, a predicate, and an object. The subject is the resource being described. In RDF, a resource can be anything that is uniquely identifiable via a Uniform Resource Identifier (URI). The object of a statement is the target being acted upon the subject. Like the subject, it can be a resource identified by a URI, but it can alternatively be a literal value like a string or a number. The predicate of a statement determines what kind of relationship holds between the subject and the object. It is also identified by a URI.
In the example, as shown in FIG. 1, a statement 801 shows that John Smith's title is Professor, which may be represented in RDF language 802. The xmlns:uni 803 is the self-defined domain name, in which the properties (Name and title) are defined as part of the RDFS. RDF is domain-independent, such that no assumptions about a particular domain of use are made. It is up to the users to define their own terminology in a schema language called RDF Schema (RDFS). RDFS defines the vocabulary used in RDF data models. In RDFS, the vocabulary may be defined, relationships between object may be described, and properties may be specified to apply to particular kinds of objects, which may include the values the objects can take.
The web ontology language (OWL) extends the RDFS vocabulary with additional resources that may be used to build more expressive ontologies for the web. OWL introduces additional restrictions regarding the structure and contents of RDF documents in order to make processing and reasoning more computationally feasible. For example, OWL defines properties that correspond to the standard set operators: intersection, union, and complement to define Boolean combinations of classes. FIG. 2 illustrates an example of using intersection to define the concept Father. Father is exactly the intersection of the classes Parent and Male. In other words, anyone who is a Father is both a Parent and a Male, and anyone who is both a Parent and a Male is a Father. At first glance, it might appear that the OWL is equivalent to saying Father is rdfs:subClassOf Parent and Father is rdfs:subclassOf Male. However, these two subClassOf statements only state that all fathers must be parents and male. They cannot be used to infer that someone is a father from only their gender and parenthood, as can be done using owl:intersectionOf.
OWL uses the RDF and RDFS, XML schema datatypes, and OWL namespaces. The OWL vocabulary itself is defined in the namespace http://www.w3.org/2002/07/owl# and is commonly referred to by the prefix owl. Datatypes represent ranges of data values that are identified using URIs. OWL allows you to use a number of predefined datatypes, most of which are defined in the XML Schema Definition (XSD) namespace. OWL allows a user to define her own dataypes by extending XSD.
RDF data may be stored and queried using a triple store framework. Triple store provides a mechanism for persistent storage and access of RDF graphs. A few examples of existing triple store implementations are Jena and Sesame. Jena (https://jena.apache.org/) is a java framework for building semantic web applications. Jena implements application programming interfaces (APIs) for dealing with Semantic Web building blocks such as RDF and OWL. Jena's fundamental class for users is the Model, which is an API for dealing with a set of RDF triples. A Model can be created from the file system or from a remote file. Sesame (http://rdf4j.org/) is an open source framework for storage, inferring, and querying of RDF data. Sesame matches the features of Jena with the availability of a connection API, inferring support, availability of a web server and SPARQL endpoint.
With this background of semantics and an M2M architecture, there is a need for determining how semantics can work within an M2M architecture.